home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Database How-To / Visual Basic 4 Database - How-to (The Waite Group)(1995).iso / pass32.fr_ / pass32.fr
Text File  |  1995-09-04  |  6KB  |  205 lines

  1. VERSION 4.00
  2. Begin VB.Form Form1 
  3.    BackColor       =   &H00C0C0C0&
  4.    Caption         =   "Passworder"
  5.    ClientHeight    =   2760
  6.    ClientLeft      =   1080
  7.    ClientTop       =   1515
  8.    ClientWidth     =   4980
  9.    BeginProperty Font 
  10.       name            =   "MS Sans Serif"
  11.       charset         =   0
  12.       weight          =   700
  13.       size            =   8.25
  14.       underline       =   0   'False
  15.       italic          =   0   'False
  16.       strikethrough   =   0   'False
  17.    EndProperty
  18.    Height          =   3165
  19.    Left            =   1020
  20.    LinkTopic       =   "Form1"
  21.    ScaleHeight     =   2760
  22.    ScaleWidth      =   4980
  23.    Top             =   1170
  24.    Width           =   5100
  25.    Begin VB.CommandButton cmdClose 
  26.       Caption         =   "Cl&ose"
  27.       Height          =   555
  28.       Left            =   2520
  29.       TabIndex        =   7
  30.       Top             =   1920
  31.       Width           =   1755
  32.    End
  33.    Begin VB.CommandButton cmdChangePwd 
  34.       Caption         =   "&Change Password"
  35.       Height          =   555
  36.       Left            =   480
  37.       TabIndex        =   6
  38.       Top             =   1920
  39.       Width           =   1755
  40.    End
  41.    Begin VB.ComboBox cboUsers 
  42.       Height          =   300
  43.       Left            =   2160
  44.       Sorted          =   -1  'True
  45.       Style           =   2  'Dropdown List
  46.       TabIndex        =   5
  47.       Top             =   360
  48.       Width           =   2115
  49.    End
  50.    Begin VB.TextBox txtVerify 
  51.       Height          =   285
  52.       Left            =   2160
  53.       TabIndex        =   4
  54.       Top             =   1320
  55.       Width           =   2115
  56.    End
  57.    Begin VB.TextBox txtNew 
  58.       Height          =   285
  59.       Left            =   2160
  60.       TabIndex        =   3
  61.       Top             =   840
  62.       Width           =   2115
  63.    End
  64.    Begin VB.Label Label4 
  65.       Alignment       =   1  'Right Justify
  66.       AutoSize        =   -1  'True
  67.       BackColor       =   &H00C0C0C0&
  68.       Caption         =   "&Retype to verify:"
  69.       Height          =   195
  70.       Left            =   540
  71.       TabIndex        =   2
  72.       Top             =   1380
  73.       Width           =   1425
  74.    End
  75.    Begin VB.Label Label3 
  76.       Alignment       =   1  'Right Justify
  77.       AutoSize        =   -1  'True
  78.       BackColor       =   &H00C0C0C0&
  79.       Caption         =   "&New password:"
  80.       Height          =   195
  81.       Left            =   630
  82.       TabIndex        =   1
  83.       Top             =   900
  84.       Width           =   1305
  85.    End
  86.    Begin VB.Label Label1 
  87.       Alignment       =   1  'Right Justify
  88.       AutoSize        =   -1  'True
  89.       BackColor       =   &H00C0C0C0&
  90.       Caption         =   "&User:"
  91.       Height          =   195
  92.       Left            =   1410
  93.       TabIndex        =   0
  94.       Top             =   420
  95.       Width           =   465
  96.    End
  97. End
  98. Attribute VB_Name = "Form1"
  99. Attribute VB_Creatable = False
  100. Attribute VB_Exposed = False
  101. Option Explicit
  102.  
  103. Private db As Database
  104.  
  105. Private Sub Form_Load()
  106.     Dim myUser As String, myPass As String
  107.     Dim i As Integer
  108.     Dim winDir As String * 128
  109.     Dim dirLen As Integer
  110.     Dim dbName As String
  111.     
  112.     On Error GoTo LoadError
  113.     
  114.     ' Set the user and passwords for initial login.
  115.     myUser = "Admin"
  116.     myPass = "theboss"
  117.     
  118.     ' read VBDBHT.INI to get the name of the system database,
  119.     ' then assign that name to the SystemDB property
  120.     DBEngine.SystemDB = GetSystemDatabase()
  121.  
  122.     ' log in
  123.     DBEngine.DefaultUser = myUser
  124.     DBEngine.DefaultPassword = myPass
  125.  
  126.     ' Get the database name and open the database.
  127.     dbName = DataPath() & "\CHAPTER.09\ORDERS.MDB" ' DataPath() is in READINI.BAS
  128.     Set db = DBEngine.Workspaces(0).OpenDatabase(dbName)
  129.  
  130.     ' Fill the list box on the form.
  131.     FillUserList
  132.  
  133. Exit Sub
  134.  
  135. LoadError:
  136.     MsgBox Err.Description, vbCritical
  137. End
  138.  
  139. End Sub
  140.  
  141. Sub FillUserList()
  142.     Dim usr As User
  143.  
  144.     For Each usr In DBEngine.Workspaces(0).Users
  145.         If UCase$(usr.Name) <> "CREATOR" And UCase$(usr.Name) <> "ENGINE" And UCase$(usr.Name) <> "ADMIN" Then
  146.             cboUsers.AddItem usr.Name
  147.         End If
  148.     Next
  149. End Sub
  150.  
  151. Private Sub cmdChangePwd_Click()
  152.     Dim ws As Workspace
  153.  
  154.     On Error GoTo ChangeError
  155.  
  156.     If cboUsers.ListIndex = -1 Then Error 32765
  157.     If txtNew = "" Then Error 32766
  158.     If Len(txtNew) > 14 Then Error 32764
  159.     If txtNew <> txtVerify Then Error 32767
  160.     DBEngine.Workspaces(0).Users(cboUsers.Text).NewPassword "", txtNew
  161.     MsgBox "Password changed for " & cboUsers.Text, vbInformation
  162.     txtNew = ""
  163.     txtVerify = ""
  164.     cboUsers.ListIndex = -1
  165. Exit Sub
  166. ChangeError:
  167.     Dim msg As String
  168.     Select Case Err.Number
  169.         Case 32764
  170.             msg = "The password may not be longer than 14 characters"
  171.             txtNew = ""
  172.             txtVerify = ""
  173.         Case 32765
  174.             msg = "You have not selected a user"
  175.         Case 32766
  176.             msg = "You have not entered a new password"
  177.         Case 32767
  178.             msg = "The verify box does not match the new password box"
  179.             txtNew = ""
  180.             txtVerify = ""
  181.         Case Else
  182.             msg = Err.Description & " (" & Err.Number & ")"
  183.     End Select
  184.     MsgBox msg, vbExclamation
  185. End Sub
  186.  
  187. Private Sub cmdClose_Click()
  188.     End
  189. End Sub
  190. Private Function GetSystemDatabase() As String
  191.     ' Returns the name of the system directory
  192.     
  193.     Const INI_FILENAME = "VBDBHT.INI"
  194.     Const MAX_PATH = 128
  195.  
  196.     Dim lpReturnedString As String * MAX_PATH
  197.     Dim bytesBack As Integer
  198.     
  199.     bytesBack = GetPrivateProfileString("Options", _
  200.         "SystemDB", "", lpReturnedString, MAX_PATH, INI_FILENAME)
  201.     GetSystemDatabase = IIf(bytesBack > 0, Left$(lpReturnedString, bytesBack), "")
  202.     
  203. End Function
  204.  
  205.